package com.itheima.dao;

import com.itheima.pojo.OrderSetting;
import com.itheima.pojo.Sorting;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * @author 吴
 * @version V1.0
 * @Description  预约管理
 * @Package com.itheima.dao
 * @date 2021/11/24 16:09
 */

public interface OrderSettingDao {

    /**
     * 根据日期查询该月的预约信息
     * @param date  日期
     * @return  返回List的一个集合 集合里面有个Map 每一个map集合的key 都是当月的号数
     */
    @MapKey("day")
    List<Map<String, Object>> getOrderSettingsByMonth(Date date);

    /**
     * 根据日期查询是否设置预约人数
     * @param orderDate  预约时间
     * @return 1表示已经设置，0表示没有设置
     */
    int findCountByOrderDate(Date orderDate);

    /**
     * 根据预约日期修改预约人数设置
     * @param orderSetting  预约信息
     */
    void updateByOrderDate(OrderSetting orderSetting);

    /**
     * 添加预约人数设置
     * @param orderSetting 预约信息
     */
    void add(OrderSetting orderSetting);

    /**
     * 批量添加
     * @param orderSettings
     */
    void batchAdd(@Param("orderSettings") List<OrderSetting> orderSettings);

    /**
     * 批量修改
     * @param orderSettings
     */
    void batchUpdate(@Param("orderSettings") List<OrderSetting> orderSettings);

    /**
     *  查询全部
     * @return
     */
    List<OrderSetting> selectAll();

    /**
     * 根据日期查询当前预约信息
     * @param orderDate
     * @return
     */
    OrderSetting selectByOrderDate(Date orderDate);


}
